/**
 * Clase PantallaBusquedaMedicamentos: define la pantalla con el formulario basico para iniciar
 * la busqueda/listado de medicamentos
 */

package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.events.ActionListener;
import java.util.*;

// Importaciones internas
import infbmobile.main.*;
import infbmobile.comunicaciones.*;
import infbmobile.util.UIHerramientas;


public class PantallaBusquedaMisPacientes extends Form implements ActionListener {
    // Referencia al midlet principal
    public InfBMobileMedico midlet;
    private String dniMedico;
    // Atributos de clase
    private TextField nombre;
    private ComboBox categorias;
    private Command comandoBuscar;
    private Command comandoVolver;

    // El hilo de comunicacion cargara en este hash los resultados de la busqueda de medicamentos
    private Hashtable resultadosBusqueda;
    // Una pantalla interna de listado
    private PantallaListadoMisPacientes pantallaListadoMisPacientes;


    /*
     * Constructor principal de la clase
     */
    public PantallaBusquedaMisPacientes(InfBMobileMedico midlet) {
        super("Busqueda de Pacientes - HospiGest Pacientes");
        this.midlet=midlet;
        // Definimos el layout del formulario
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        nombre=new TextField(CENTER);
        nombre.setConstraint(TextField.ANY);
        addComponent(UIHerramientas.crearPareja("nombre: ",nombre));        
        // Configuramos los comandos
        comandoVolver=new Command("Volver");
        addCommand(comandoVolver);
        comandoBuscar=new Command("Buscar");
        addCommand(comandoBuscar);
        setCommandListener(this);
    }

    public Hashtable getResultadosBusqueda() {
        return resultadosBusqueda;
    }

    public void setResultadosBusqueda(Hashtable resultados) {
        resultadosBusqueda=resultados;
    }

    public void mostrarListado() {
        if(pantallaListadoMisPacientes==null){
            pantallaListadoMisPacientes=new PantallaListadoMisPacientes(midlet,resultadosBusqueda);
        }
        pantallaListadoMisPacientes.show();
    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente=evento.getSource();
/////////////////////////////////RMS/////////////////////////////
        dniMedico="74655258L";
/////////////////////////////////////////////////////////////////
        // Recogemos de donde vino el evento
        if(fuente==comandoBuscar){
            // "Reseteamos" la anterior busqueda
            pantallaListadoMisPacientes=null;
            // Obtenemos la categoria seleccionada evitando la cadena "Seleccione..."
          //  String categoria=(categorias.getSelectedIndex()==0)?"":(String)categorias.getSelectedItem();
            String medicamento=nombre.getText();
            // Configuramos una comunicacion http mediante el uso de la libreria desarrollada
            ComunicacionHttp.setHost(midlet.servidorWeb);
            ComunicacionHttp.setPuerto(midlet.puerto);
            ComunicacionHttp http=new ComunicacionHttp(ComunicacionHttp.BUSCAR_PACIENTES,"GestionPacientes",this);
            String[] nombreParametros=new String[]{"accion","nombre","dniMedico"};
            String[] valoresParametros=new String[]{"buscar_pacientes",medicamento,dniMedico};
            http.setNombreParametros(nombreParametros);
            http.setValoresParametros(valoresParametros);
            http.setCheckSesion(false); // primero probamos sin mantenimiento de sesion
            http.setModoHebra(true);
            http.conectar();
        }else if(fuente==comandoVolver){
            System.gc();
            midlet.mostrarPantallaMenuPrincipal();
        }
    }

}